#include <REGX52.H>
#include "delay.h"
#include <INTRINS.H>


sbit Buzzer=P2^5; 

unsigned int i;

/**
  * @brief  蜂鸣器私有延时函数，延时500us
  * @param  无
  * @retval 无
  */
void Buzzer_Delay500us(void)	//@11.0592MHz
{
	unsigned char data i;

	_nop_();
	i = 227;
	while (--i);
}

/**
  * @brief  蜂鸣器发声
  * @param  ms 发声的时长，范围：0~32767
  * @retval 无
  */

//每500us翻转一次电平，产生周期为1ms(1kHz)的方波信号
void Buzzer_Time(unsigned int ms)	//@11.0592MHz
{
	for(i=0;i<ms*2;i++)
	//因为我们传入的时间是蜂鸣器每次响的时间，延时函数变0.5毫秒后1000次循环是0.5秒，
	//和我们传入的值不对应，所以应该在for循环里乘2
	{
		Buzzer=!Buzzer;
		Buzzer_Delay500us();//500us翻转一次，f=1/(500*2us)=1000hz
	}
}